package com.zrrd._12_javaSE_Plus.reflect.no_15;

import java.lang.reflect.Method;

/**
 * @author WanJl
 * @version 1.0
 * @title Demo01
 * @description
 * @create 2023/11/18 16:17
 */
public class No_15 {

    /**
     * @param obj        传入的对象参数
     * @param methodName 方法名
     * @return 方法返回值
     * @throws Exception
     */
    public static Object invokeMethod(Object obj, String methodName) throws Exception {
        //1.获取Class对象
        Class<?> objClass = obj.getClass();
        //2.获取指定方法名的方法
        Method method = objClass.getMethod(methodName);
        //检查一下
        method.setAccessible(true);
        //3.执行该方法，获取返回值。
        return method.invoke(obj);
    }

    public static void main(String[] args) throws Exception {

        Object sum = invokeMethod(new Test15(), "sum");
        System.out.println(sum);
        Object o = invokeMethod("hello World", "toUpperCase");
        System.out.println(o);
    }

}
class Test15{
    public int sum(){
        return 66;
    }

}